/*-------------------------------------------------------
-   文件名：charecter.h
-     模块：char 
-     作用：关于 uft32 编码的文字函数的，输入和输出。
-     版本：
-------------------------------------------------------*/

#include <stdio.h>

#include "character.h"


tetra  utf32_strlen( tetra * str )
{
    tetra i = 0;
    
    if( str == NULL )
    {
        return 0;
    }

    /**/
    i = 0;
    while( (*str) != 0 )
    {
        i++;
        str ++;
    }

    return i;
}

tetra  utf32_strcmp( tetra * strA, tetra * strB )
{
}

tetra  print_tstr( tetra * str )
{
    tetra  len, i;
    byte  tstr[128];
    
    
    len = utf32_strlen( str );
    if( (len != 0) && (len<128) )
    {
        for( i=0; i<len; i++ )
        {
            tstr[i] = (byte)str[i];
        }
        
        tstr[len] = 0;

        printf("%s", tstr );
    }
    else
    {
     
    }

    return 0;
}


/*
 *  输入函数：
 *
 *  return:
 *      0xFFFFFFFF 表示文件结束。
 *      0xFFFFFFFE 表示遇到换行符 0x0D,0x0D 不匹配。
 *      0xFFFFFFFD 其他错误?
 *      0x0000000A 表示换行，从来不会返回 0x0000000D
 *      other      为 uft32 编码的字符。
 *       
 */

// ascii 编码文件的字符输入函数。

tetra  read_ascii( FILE * fp )
{
    tetra  tempi;
    tempi = fgetc( fp );
    if( tempi == EOF )
    {
        return 0xFFFFFFFF;
    }
    else if( tempi == 0x0D )
    {
        tempi = fgetc( fp );
        if( tempi == 0x0A )
        {
            return 0x0A;
        }
        else
        {
            return 0xFFFFFFFE;
        }
    }
    else
    {
        return (tetra)( tempi );
    }
}



// gb2312 编码文件的字符输入函数。
tetra  read_gb2312( FILE * fp )
{
}


